{\rtf1\ansi\deff0\adeflang1025
{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fnil\fprq0\fcharset0 Courier New;}{\f3\froman\fprq2\fcharset0 Thorndale{\*\falt Times New Roman};}{\f4\fswiss\fprq2\fcharset0 Albany{\*\falt Arial};}{\f5\fnil\fprq0\fcharset0 Verdana{\*\falt sans-serif};}{\f6\fnil\fprq0\fcharset0 Times New Roman;}{\f7\fnil\fprq0\fcharset0 Courier New{\*\falt monospace};}{\f8\fnil\fprq0\fcharset0 StarSymbol{\*\falt Arial Unicode MS};}{\f9\fnil\fprq0\fcharset0 Arial{\*\falt sans-serif};}{\f10\fnil\fprq0\fcharset128 StarSymbol{\*\falt Arial Unicode MS};}{\f11\fnil\fprq2\fcharset0 Arial;}{\f12\fnil\fprq2\fcharset0 HG Mincho Light J{\*\falt msmincho};}{\f13\fnil\fprq2\fcharset0 Arial Unicode MS;}}
{\colortbl;\red0\green0\blue0;\red0\green0\blue128;\red255\green153\blue0;\red153\green0\blue0;\red0\green0\blue255;\red255\green255\blue255;\red128\green128\blue128;\red192\green192\blue192;}
{\stylesheet{\s1\li86\ri86\lin86\rin86\fi0\sb86\sa86\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033\snext1 Normal;}
{\s2\li86\ri86\lin86\rin86\fi0\sb240\sa283\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af13\afs28\lang255\ltrch\dbch\af12\langfe255\hich\f4\fs28\lang1033\loch\f4\fs28\lang1033\sbasedon1\snext3 Heading;}
{\s3\li0\ri0\lin0\rin0\fi0\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033\sbasedon1\snext3 Body Text;}
{\s4\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033\sbasedon3\snext4 List;}
{\s5\li86\ri86\lin86\rin86\fi0\sb120\sa120\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ai\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\i\loch\f6\fs24\lang1033\i\sbasedon1\snext5 caption;}
{\s6\li86\ri86\lin86\rin86\fi0\sb86\sa86\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033\sbasedon1\snext6 Index;}
{\s7\li86\ri86\lin86\rin86\fi0\sa283\brdrb\brdrdb\brdrw15\brdrcf7\brsp0{\*\brdrb\brdlncol7\brdlnin1\brdlnout1\brdlndist20}\brsp0\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs12\lang1033\loch\f6\fs12\lang1033\sbasedon1\snext3 Horizontal Line;}
{\s8\li86\ri86\lin86\rin86\fi0\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\i\loch\f6\fs24\lang1033\i\sbasedon1\snext8 envelope return;}
{\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033\sbasedon3\snext9 Table Contents;}
{\s10\li86\ri86\lin86\rin86\fi0\sb86\sa86\cf0{\*\tlswg8236}\tqc\tx4904{\*\tlswg8236}\tqr\tx9723{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033\sbasedon1\snext10 footer;}
{\s11\li86\ri86\lin86\rin86\fi0\sb86\sa86\cf0{\*\tlswg8236}\tqc\tx4904{\*\tlswg8236}\tqr\tx9723{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033\sbasedon1\snext11 header;}
{\s12\li86\ri86\lin86\rin86\fi0\sb240\sa283\keepn\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af13\afs48\lang255\ab\ltrch\dbch\af12\langfe255\hich\f3\fs48\lang1033\b\loch\f3\fs48\lang1033\b\sbasedon2\snext3{\*\soutlvl0} heading 1;}
{\s13\li86\ri86\lin86\rin86\fi0\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af2\afs20\lang255\ltrch\dbch\af2\langfe255\hich\f2\fs20\lang1033\loch\f2\fs20\lang1033\sbasedon1\snext13 Preformatted Text;}
{\s14\cf0\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\rtlch\af6\afs24\lang255\ab\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\b\loch\f6\fs24\lang1033\b\sbasedon9\snext14 Table Heading;}
{\*\cs16\cf0\rtlch\af11\afs24\lang255\ltrch\dbch\af11\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 Endnote Symbol;}
{\*\cs17\cf0\rtlch\af11\afs24\lang255\ltrch\dbch\af11\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 Footnote Symbol;}
{\*\cs18\cf2\ul\ulc0\rtlch\af11\afs24\lang255\ltrch\dbch\af11\langfe255\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033 Internet link;}
{\*\cs19\cf0\rtlch\af8\afs18\lang255\ltrch\dbch\af8\langfe255\hich\f8\fs18\lang1033\loch\f8\fs18\lang1033 Bullet Symbols;}
}{\*\listtable{\list\listtemplateid1
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li707}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li1414}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li2121}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li2828}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li3535}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li4242}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li4949}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li5656}
{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li6363}
{\*\soutlvl{\listlevel\levelnfc23\leveljc0\levelstartat1\levelfollow0{\leveltext \'01\u8226 ?;}{\levelnumbers;}\f8\fs18\f8\fs18\f8\fs18\f10\fi-283\li7070}}\listid1}
}{\listoverridetable{\listoverride\listid1\listoverridecount0\ls0}}

{\info{\title Regular Expression Elements}{\creatim\yr2009\mo4\dy22\hr4\min24}{\revtim\yr1601\mo1\dy1\hr0\min0}{\printim\yr1601\mo1\dy1\hr0\min0}{\comment StarWriter}{\vern6800}}\deftab709
{\*\pgdsctbl
{\pgdsc0\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt0 Standard;}
{\pgdsc1\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1800\margrsxn1800\margtsxn1440\margbsxn1440\pgdscnxt1 Endnote;}
{\pgdsc2\pgdscuse195\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn567\margtsxn567\margbsxn567{\cbpat6}\pgdscnxt2 HTML;}}
{\*\pgdscno2}\paperh15840\paperw12240\margl1134\margr567\margt567\margb567\sectd\sbknone\pgwsxn12240\pghsxn15840\marglsxn1134\margrsxn567\margtsxn567\margbsxn567{\cbpat6}\ftnbj\ftnstart1\ftnrstcont\ftnnar\aenddoc\aftnrstcont\aftnstart1\aftnnrlc
\pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\b\fs20\f5 Regular Expression Elements}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Some of the commonly used regular expression elements are:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrt\brdrdb\brdrw15\brdrcf8\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrt\brdrdb\brdrw15\brdrcf8\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 ^}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Matches start of input}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 $}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Matches end of input}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 .}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Matches any character except new line}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 |}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 OR}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 *}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match the preceding expression 0 or more number of times}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 +}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match the preceding expression 1 or more number of times}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 ?}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match the preceding expression 0 or 1 number of times}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trrh302\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 ()}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Logical group / sub-expression (capture as auto number group)}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 (?(exp))}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Named capture group}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 (?=exp)}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any position preceding a suffix exp}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 (?<=exp)}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any position following a prefix exp}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 (?!exp)}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any position after which exp is not found}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 (?<!--exp)}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any position before which exp is not found}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 [\'85]}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 List of characters to match}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 [^expression]}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Not containing any of the specified character}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \{n\} or \{n. m\}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Quantifier (Match exact number or range of instances)}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 (?(exp (yes|no))}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 If expression (exp) is true match yes part else no part}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Escape character (to match any of the special characters)}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\w}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any word character}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\W}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any non-word character}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\s}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any white space character}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\S}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any non-white space character}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\d}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any numeric digit}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\D}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any numeric digit}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\b}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match a backspace if in character matching mode ([]).Otherwise match the position at beginning or end of a word}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\t}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match tab}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\r}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match carriage return}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2366\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 \\n}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match line feed}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 The following are matching substitutions:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrt\brdrdb\brdrw15\brdrcf8\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2333\clbrdrt\brdrdb\brdrw15\brdrcf8\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 num}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Substitute last substring matched by group number num}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2333\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 $\{name\}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Substitute last substring matched by group name}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2333\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 $&}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Substitute a copy of entire text itself}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2333\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 $`}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Substitute all the text of the input string before match}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2333\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 $\'92}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Substitute all the text of the input string after match}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2333\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 $+}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Substitute last matched group}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2333\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 $_}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Substitute input string}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt28\trpaddfl3\trpaddl28\trpaddfb3\trpaddb28\trpaddfr3\trpaddr28\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\cellx2333\clbrdrl\brdrdb\brdrw15\brdrcf8\clbrdrb\brdrdb\brdrw15\brdrcf8\clbrdrr\brdrdb\brdrw15\brdrcf8\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 $$}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Substitute literal $}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 \line }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Regular expressions could also be used to find repeating patterns by making use of backreferencing, using which you can name a pattern found and then use that reference elsewhere in expression. This naming of patterns is also useful in case we need to pars
e a string like free form date or time strings.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\b\fs20\f5 Some Example Regular Expressions}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f5\fs20\f6\f6\f8\fs18\f8\fs18\f8\fs18 \'95\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match a word - \\btest\\b }
\par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f5\fs20\f6\f6\f8\fs18\f8\fs18\f8\fs18 \'95\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match all 6 letter words - \\b\\w\{6\}\\b }
\par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f5\fs20\f6\f6\f8\fs18\f8\fs18\f8\fs18 \'95\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match all 6 digit numbers - \\b\\d\{6\}\\b }
\par \pard\plain {\listtext\pard\plain \li707\ri0\lin707\rin0\fi-283\sa283\f6\f6\f6\f8\fs18\f8\fs18\f8\fs18 \'95\tab}\ilvl0 \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\ls0\li707\ri0\lin707\rin0\fi-283\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Match any number \\b\\d+\\b}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Instead of giving loads of examples here, I suggest that you download Expresso and check its analyzer view for detailed analysis of the regular expression.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 private const string TIME_STR = @"^\\s?(?" }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 + @"(?\\d\{1,2\})" + @"(:(?\\d\{1,2\}))?" }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 + @"\\s?((?(am|pm)))?" }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 + @")\\s?$"; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 static DateTime ParseTime (string strTime) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 \{ }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 DateTime currTime = DateTime.Now; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 DateTime finalTime = DateTime.Today; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 Match m; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 int hour = 0, }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 min = 0; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 Regex regExTime = new Regex (TIME_STR, }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 RegexOptions.IgnoreCase }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 | RegexOptions.CultureInvariant }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 | RegexOptions.IgnorePatternWhitespace }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 | RegexOptions.Compiled); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 m = regExTime.Match (strTime); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 if (m.Success) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 \{ }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 if (m.Groups["hour"].Success) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 hour = Int32.Parse (m.Groups["hour"].Value); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 if (m.Groups["min"].Success) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 min = Int32.Parse (m.Groups["min"].Value); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 if (m.Groups["am_pm"].Success) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 hour = ConvertAmPm (m.Groups["am_pm"].Value, hour); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 \} }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 else }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 throw new FormatException ("Invalid time format"); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 if (hour > 23 || min > 59) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 throw new FormatException ("Invalid time format"); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 finalTime = new DateTime (currTime.Year, currTime.Month, }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 currTime.Day, hour, min, 0); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 return finalTime; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 \} }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 private static int ConvertAmPm (string amPm, int hour) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 \{ }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 int retHour = hour; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 amPm = amPm.ToLower(); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 if (amPm.Equals("am")) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 // all hours remain the same except the 12:00 am }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 // (which is 0000 hours) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 if (hour == 12) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 retHour = 00; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 else if (amPm.Equals("pm")) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 // add 12 to hours except if 12:00 pm }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 if (hour != 12) }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 retHour = hour + 12; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 else }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 throw new FormatException ("Invalid amPm flag format"); }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 return retHour; }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0 \}</PRE> }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs24\lang1033\i0\b{\b\f5\cf3 Learning .NET Regular Expressions with Expresso}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Did you ever wonder what Regular Expressions are all about and want to gain a basic understanding quickly? My goal is to get you up and running with a basic understanding of regular expressions within 30 minutes. The reality is that regular expressions are
n't as complex as they look. The best way to learn is to start writing and experimenting. After your first half hour, you should know a few of the basic constructs and be able to design and use regular expressions in your programs or web pages. For those o
f you who get hooked, there are many excellent resources available to further your education. }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf3{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs24\lang1033\b\loch\f5\fs24\lang1033\b {\rtlch \ltrch\loch\f5\fs24\lang1033\i0\b What the Heck is a Regular Expression Anyway? }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\f5\cf1 I'm sure you are familiar with the use of "wildcard" characters for pattern matching. For example, if you want to find all the Microsoft Word files in a Windows directory, you search for "}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 *.doc}{\f5\cf1 ", knowing that the asterisk is interpreted as a wildcard that 
can match any sequence of characters. Regular expressions are just an elaborate extension of this capability. }}
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 In writing programs or web pages that manipulate text, it is frequently necessary to locate strings that match complex patterns. Regular expressions were invented to describe such patterns. Thus, a regular expression is just a shorthand code for a pattern.
 For example, the pattern "\\w+" is a concise way to say "match any non-null strings of alphanumeric characters". The .NET framework provides a powerful class library that makes it easy to include regular expressions in your applications. With this library,
 you can readily search and replace text, decode complex headers, parse languages, or validate text.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5\cf1 A good way to learn the arcane syntax of regular expressions is by starting with examples and then experimenting with your own creations. This tutorial introduces the basics of regular expressions, giving many examples that are included in an }}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0{\field{\*\fldinst HYPERLINK "http://www.ultrapico.com/Expresso.htm" }{\fldrslt \*\cs18\cf2\ul\ulc0\rtlch\ltrch\dbch\hich\f0\fs24\lang1033\loch\f0\fs24\lang1033{\fs20\f5\cf5 Expresso}}}{\cf1  {\fs20\f5 libr
ary file. Expresso can be used to try out the examples and to experiment with your own regular expressions.}} }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Let's get started!}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs24\lang1033\i0\b{\b\f5\cf3 Some Simple Examples}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Searching for Elvis}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Suppose you spend all your free time scanning documents looking for evidence that Elvis is still alive. You could search with the following regular expression:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\b{\f5\cf1 1. }}}{\b{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b{\f7\cf4 elvis}}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\cf1  {\f5{\i Find elvis}}{\f5  }}}
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 This is a perfectly valid regular expression that searches for an exact sequence of characters. In .NET, you can easily set options to ignore the case of characters, so this expression will match "Elvis", "ELVIS", or "eLvIs". Unfortunately, it will also ma
tch the last five letters of the word "pelvis". We can improve the expression as follows:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\b{\f5\cf1 2. }}}}{\b{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b{\f7\cf4 \\belvis\\b}}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\cf1  {\i\f5 Find elvis as a whole word}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 Now things are getting a little more interesting. The "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b}{\f5\cf1 " is a special code that means, "match the position at the beginning or end of any word". This expression will only match complete words spelled "elvis" with any combination of lower case or capital 
letters.}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 Suppose you want to find all lines in which the word "elvis" is followed by the word "alive." The period or dot "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 .}{\f5\cf1 " is a special code that matches any character other than a newline. The asterisk "}{\b\f7\cf4 *}{\f5\cf1 " means repeat the previous term as many times as necessar
y to guarantee a match. Thus, "}{\b\f7\cf4 .*}{\f5\cf1 " means "match any number of characters other than newline". It is now a simple matter to build an expression that means "search for the word 'elvis' followed on the same line by the word 'alive'."}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\b{\f5\cf1 3. }}}}{\b{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b{\f7\cf4 \\belvis\\b.*\\balive\\b}}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\cf1  {\i\f5 Find text with "elvis" followed by "alive"}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 With just a few special characters we are beginning to build powerful regular expressions and they are already becoming hard for we humans to read.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Let's try another example.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Determining the Validity of Phone Numbers}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Suppose your web page collects a customer's seven-digit phone number and you want to verify that the phone number is in the correct format, "xxx-xxxx", where each "x" is a digit. The following expression will search through text looking for such a string:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  
}
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\b{\f5\cf1 4. }}}}{\b{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b{\f7\cf4 \\b\\d\\d\\d-\\d\\d\\d\\d}}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\cf1  {\i\f5 Find seven-digit phone number}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 Each "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\d}{\f5\cf1 " means "match any single digit". The "}{\b\f7\cf4 -}{\f5\cf1 " has no special meaning and is interpreted literally, matching a hyphen. To avoid the annoying repetition, we can use a shorthand notation that means the same thing:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\b{\f5\cf1 5. }}}}{\b{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b{\f7\cf4 \\b\\d\{3\}-\\d\{4\} }}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 Find seven-digit phone number a better way}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 The "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \{3\}}{\f5\cf1 " following the "}{\b\f7\cf4 \\d}{\f5\cf1 " means "repeat the preceding character three times".}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Let's learn how to test this expression.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Special Characters}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 You should get to know a few characters with special meaning. You already met "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b}{\f5\cf1 ", "}{\b\f7\cf4 .}{\f5\cf1 ", "}{\b\f7\cf4 *}{\f5\cf1 ", and "}{\b\f7\cf4 \\d}{\f5\cf1 ". To match any whitespace characters, like spaces, tabs, and newlines, use "}{\b\f7\cf4 \\s}{\f5\cf1 " . Similarly, "}{\b\f7\cf4 \\w}{\f5\cf1 " matches any alphanumeric character.}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Let's try a few more examples:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 6}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\ba\\w*\\b}{\cf1  {\i\f5 Find words that start with the letter a}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 This works by searching for the beginning of a word (\\b), then the letter "a", then any number of repetitions of alphanumeric characters (\\w*), then the end of a word (\\b).}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 7}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\d+}{\cf1  {\i\f5 Find repeated strings of digits}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Here, the "+" is similar to "*", except it requires at least one repetition.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 8}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b\\w\{6\}\\b}{\cf1  {\i\f5 Find six letter words}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Try these in Expresso and start experimenting by inventing your own expressions. Here is a table of some of the characters with special meaning:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1556\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10536
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b . }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any character except newline }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1556\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10536
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\w }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any alphanumeric character }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1556\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10536
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\b\loch\f6\fs20\lang1033\b{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\f7\cf4 \\s}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any whitespace character }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1556\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10536
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\d }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any digit }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1556\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10536
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\b\loch\f6\fs20\lang1033\b{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\f7\cf4 \\b}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match the beginning or end of a word }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1556\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10536
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b ^ }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match the beginning of the string }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1556\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10536
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b $ }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match the end of the string }
\cell\row\pard \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20\f5\cf1{\b Table 1.}}}{\fs20\f5\cf1{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0  Commonly used special characters for regular expressions}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 In the beginning}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 The special characters "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ^}{\f5\cf1 " and "}{\b\f7\cf4 $}{\f5\cf1 " are used when looking for something that must start at the beginning of the text and/or end at the end of the text. This is especially useful for validating input in which the entire text must match a pattern. For example
, to validate a seven-digit phone number, you might use:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 9}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ^\\d\{3\}-\\d\{4\}$}{\cf1  {\i\f5 Validate a seven-digit phone number}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 This is the same as example (5), but forced to fill the whole text string, with nothing else before or after the matched text. By setting the "Multiline" option in .NET, "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ^}{\f5\cf1 " and "}{\b\f7\cf4 $}{\f5\cf1 " change their meaning to match the beginning and end of a single line of te
xt, rather than the entire text string. The Expresso example uses this option.}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Escaped characters}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 A problem occurs if you actually want to match one of the special characters, like "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ^}{\f5\cf1 " or "}{\b\f7\cf4 $}{\f5\cf1 ". Use the backslash to remove the special meaning. Thus, "}{\b\f7\cf4 \\^}{\f5\cf1 ", "}{\b\f7\cf4 \\.}{\f5\cf1 ", and "}{\b\f7\cf4 \\\\}{\f5\cf1 ", match the literal characters "}{\b\f7\cf4 ^}{\f5\cf1 ", "}{\b\f7\cf4 .}{\f5\cf1 ", and "}{\b\f7\cf4 \\}{\f5\cf1 ", respectively.}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Repetitions}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 You've seen that "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \{3\}}{\f5\cf1 " and "}{\b\f7\cf4 *}{\f5\cf1 " can be used to indicate repetition of a single character. Later, you'll see how the same syntax can be used to repeat entire subexpressions. There are several other ways to specify a repetition, as shown in this table:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1811\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b * }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat any number of times }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1811\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\b\loch\f6\fs20\lang1033\b{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\f7\cf4 +}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat one or more times }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1811\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\b\loch\f6\fs20\lang1033\b{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\f7\cf4 ?}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat zero or one time }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1811\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \{}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 n}{\b{\f7\cf4 \}}}{\b  }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat {\i n} times }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1811\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \{}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i{\f5\cf1 n}}{\i{\b\f7\cf4 ,}{\f5\cf1 m}}{\b{\f7\cf4 \}}}{\b  }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat at least {\i n}, but no more than {\i m} times }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1811\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \{}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 n}{\b\f7\cf4 ,\} }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat at least {\i n} times }
\cell\row\pard \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20\f5\cf1{\b Table 2}}}{\fs20\f5\cf1{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . Commonly used quantifiers}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Let's try a few more examples:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 10}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b\\w\{5,6\}\\b}{\cf1  {\i\f5 Find all five and six letter words}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 11}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b\\d\{3\}\\s\\d\{3\}-\\d\{4\}}{\cf1  {\i\f5 Find ten digit phone numbers}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 12}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\d\{3\}-\\d\{2\}-\\d\{4\}}{\cf1  {\i\f5 Social security number}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 13}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ^\\w*}{\cf1  {\i\f5 The first word in the line or in the text}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 Try the last example with and without setting the "Multiline" option, which changes the meaning of "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ^}{\f5\cf1 ".}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Character Classes}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 It is simple to find alphanumerics, digits, and whitespace, but what if we want to find anything from some other set of characters? This is easily done by listing the desired characters within square brackets. Thus, "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 [aeiou]}{\f5\cf1 " matches any vowel and "}{\b\f7\cf4 [.?!]}{\f5\cf1 " 
matches the punctuation at the end of a sentence. In this example, notice that the "}{\b\f7\cf4 .}{\f5\cf1 " And "}{\b\f7\cf4 ?}{\f5\cf1 " lose their special meanings within square brackets and are interpreted literally. We can also specify a range of characters, so "}{\b\f7\cf4 [a-z0-9]}{\f5\cf1 " means, "match any lowe
rcase letter of the alphabet, or any digit".}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Let's try a more complicated expression that searches for telephone numbers.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 14}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\(?\\d\{3\}[) ]\\s?\\d\{3\}[- ]\\d\{4\}}{\cf1  {\i\f5 A ten digit phone number}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 This expression will find phone numbers in several formats, like "(800) 325-3535" or "650 555 1212". The "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\(?}{\f5\cf1 " searches for zero or one left parentheses, "}{\b\f7\cf4 [) ]}{\f5\cf1 " searches for a right parenthesis or a space. The "\\s?" searches for zero or one whitespace char
acters. Unfortunately, it will also find cases like "650) 555-1212" in which the parenthesis is not balanced. Below, you'll see how to use alternatives to eliminate this problem.}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Negation}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Sometimes we need to search for a character that is NOT a member of an easily defined class of characters. The following table shows how this can be specified.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1729\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\W }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any character that is NOT alphanumeric }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1729\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\S }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any character that is NOT whitespace }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1729\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\D }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any character that is NOT a digit }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1729\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\B }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match a position that is NOT the beginning or end of a word }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1729\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b [^x] }
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any character that is NOT {\i x} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1729\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b [^aeiou] }
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any character that is NOT one of the characters {\i aeiou} }
\cell\row\pard \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20\f5\cf1{\b Table 3}}}{\fs20\f5\cf1{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . How to specify what you don't want}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 15}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\S+ }{\i\f5\cf1 All strings that do not contain whitespace characters}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Later, we'll see how to use "lookahead" and "lookbehind" to search for the absence of more complex patterns.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Alternatives}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 To select between several alternatives, allowing a match if either one is satisfied, use the pipe "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 |}{\f5\cf1 " symbol to separate the alternatives. For example, Zip Codes come in two flavors, one with 5 digits, the other with 9 digits and a hyphen. We can find eith
er with this expression:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 16}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b\\d\{5\}-\\d\{4\}\\b|\\b\\d\{5\}\\b}{\cf1  {\i\f5 Five and nine digit Zip Codes}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 When using alternatives, the order is important since the matching algorithm will attempt to match the leftmost alternative first. If the order is reversed in this example, the expression will only find the 5 digit Zip Codes and fail to find the 9 digit on
es. We can use alternatives to improve the expression for ten digit phone numbers, allowing the area code to appear either delimited by whitespace or parenthesis:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 17}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (\\(\\d\{3\}\\)|\\d\{3\})\\s?\\d\{3\}[- ]\\d\{4\}}{\cf1  {\i\f5 Ten digit phone numbers, a better way}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs24\lang1033\i0\b{\b\f5\cf3 Grouping}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Parentheses may be used to delimit a subexpression to allow repetition or other special treatment. For example:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 18}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (\\d\{1,3\}\\.)\{3\}\\d\{1,3\}}{\cf1  {\i\f5 A simple IP address finder}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 The first part of the expression searches for a one to three digit number followed by a literal period "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\.}{\f5\cf1 ". This is enclosed in parentheses and repeated three times using the "}{\b\f7\cf4 \{3\}}{\f5\cf1 " quantifier, followed by the same expression without the trailing period.}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Unfortunately, this example allows IP addresses with arbitrary one, two, or three digit numbers separated by periods even though a valid IP address cannot have numbers larger than 255. It would be nice to arithmetically compare a captured number N to enfor
ce N<256, but this is not possible with regular expressions alone. The next example tests various alternatives based on the starting digits to guarantee the limited range of numbers by pattern matching. This shows that an expression can become cumbersome e
ven when looking for a pattern that is simple to describe.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 19}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.)\{3\}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)}{\cf1  {\i\f5 IP finder}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Expresso has a feature that diagrams expressions in a Tree structure, explaining what each piece means. When debugging an expression, this can help zoom in on the part that is causing trouble. Try this by selecting example (17) and then using the Analyze b
utton. Select nodes in the tree and expand them to explore the structure of this regular expression as shown in the figure. After highlighting a node, you can also use the Partial Match or Exclude Match buttons to run a match using just the highlighted por
tion of the regular expression or using the regular expression with the highlighted portion excluded.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 When subexpressions are grouped with parentheses, the text that matches the subexpression is available for further processing in a computer program or within the regular expression itself. By default, groups are numbered sequentially as encountered in read
ing from left to right, starting with 1. This automatic numbering can be seen in Expresso's skeleton view or in the results shown after a successful match.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 A "backreference" is used to search for a recurrence of previously matched text that has been captured by a group. For example, "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\1}{\f5\cf1 " means, "match the text that was captured by group 1". Here is an example:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 20}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b(\\w+)\\b\\s*\\1\\b}{\cf1  {\i\f5 Find repeated words}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 This works by capturing a string of at least one alphanumeric character within group 1 "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (\\w+)}{\f5\cf1 ", but only if it begins and ends a word. It then looks for any amount of whitespace "}{\b\f7\cf4 \\s*}{\f5\cf1 " followed by a repetition of the captured text "}{\b\f7\cf4 \\1}{\f5\cf1 " ending at the end of 
a word.}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 It is possible to override the automatic numbering of groups by specifying an explicit name or number. In the above example, instead of writing the group as "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (\\w+)}{\f5\cf1 ", we can write it as "}{\b\f7\cf4 (?<Word>\\w+)}{\f5\cf1 " to name this capture group "}{\b\f7\cf4 Word}{\f5\cf1 ". A backreference to th
is group is written "}{\b\f7\cf4 \\k<Word>}{\f5\cf1 ". Try this example:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 21}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b(?<Word>\\w+)\\b\\s*\\k<Word>\\b}{\cf1  {\i\f5 Capture repeated word in a named group}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Test this in Expresso and expand the match results to see the contents of the named group.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Using parentheses, there are many special purpose syntax elements available. Some of the most common are summarized in this table:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\b\fs20\f5 Captures}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx2602\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b{\f7\cf4 )}}{\b  }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match {\i exp} and capture it in an automatically numbered group }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx2602\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?<}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 name}{\b\f7\cf4 >}{\i\f5\cf1 exp}{\b{\f7\cf4 )}}{\b  }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match {\i exp} and capture it in a group named {\i name} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx2602\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?:}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b{\f7\cf4 )}}{\b  }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match {\i exp}, but do not capture it }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\b\loch\f5\fs20\lang1033\b {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b Lookarounds }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx2602\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?=}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any position preceding a suffix {\i exp} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx2602\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?<=}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any position following a prefix {\i exp} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx2602\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?!}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any position after which the suffix {\i exp} is not found }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx2602\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?<!}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b{\f7\cf4 )}}{\b  }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Match any position before which the prefix {\i exp} is not found }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\b\loch\f5\fs20\lang1033\b {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b Comment }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx2602\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10537
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?#}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 comment}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Comment }
\cell\row\pard \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20\f5\cf1{\b Table 4}}}{\fs20\f5\cf1{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . Commonly used Group Constructs}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 We've already talked about the first two. The third "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?:}{\i\f5\cf1 exp}{\b\f7\cf4 )}{\f5\cf1 " does not alter the matching behavior, it just doesn't capture it in a named or numbered group like the first two.}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Positive Lookaround}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 The next four are so-called lookahead or lookbehind assertions. They look for things that go before or after the current match without including them in the match. It is important to understand that these expressions match a position like "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ^}{\f5\cf1 " or "}{\b\f7\cf4 \\b}{\f5\cf1 " and n
ever match any text. For this reason, they are known as "zero-width assertions". They are best illustrated by example:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?=}{\i\f5\cf1 exp}{\b\f7\cf4 )}{\f5\cf1 " is the "zero-width positive lookahead assertion". It matches a position in the text that precedes a given suffix, but doesn't include the suffix in the match:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 22}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b\\w+(?=ing\\b)}{\cf1  {\i\f5 The beginning of words ending with "ing"}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?<=}{\i\f5\cf1 exp}{\b\f7\cf4 )}{\f5\cf1 " is the "zero-width positive lookbehind assertion". It matches the position following a prefix, but doesn't include the prefix in the match:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 23}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?<=\\bre)\\w+\\b}{\cf1  {\i\f5 The end of words starting with "re"}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Here is an example that could be used repeatedly to insert commas into numbers in groups of three digits:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 24}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?<=\\d)\\d\{3\}\\b}{\cf1  {\i\f5 Three digits at the end of a word, preceded by a digit}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Here is an example that looks for both a prefix and a suffix:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 25}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?<=\\s)\\w+(?=\\s)}{\cf1  {\i\f5 Alphanumeric strings bounded by whitespace}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Negative Lookaround}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Earlier, I showed how to search for a character that is not a specific character or the member of a character class. What if we simply want to verify that a character is not present, but don't want to match anything? For example, what if we are searching f
or words in which the letter "q" is not followed by the letter "u"? We could try:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 26}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b\\w*q[^u]\\w*\\b}{\cf1  {\i\f5 Words with "q" followed by NOT "u"}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Run the example and you will see that it fails when "q" is the last letter of a word, as in "Iraq". This is because "[^q]" always matches a character. If "q" is the last character of the word, it will match the whitespace character that follows, so in the 
example the expression ends up matching two whole words. Negative lookaround solves this problem because it matches a position and does not consume any text. As with positive lookaround, it can also be used to match the position of an arbitrarily complex s
ubexpression, rather than just a single character. We can now do a better job:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 27}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\b\\w*q(?!u)\\w*\\b}{\cf1  {\i\f5 Search for words with "q" not followed by "u"}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5\cf1 We used the "zero-width negative lookahead assertion", "(?!{\i exp})", which succeeds only if the suffix "{\i exp}" is not present. Here is another example:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 28}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 \\d\{3\}(?!\\d)}{\cf1  {\i\f5 Three digits not followed by another digit}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 Similarly, we can use "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?<!}{\i\f5\cf1 exp}{\b\f7\cf4 )"}{\f5\cf1 , the "zero-width negative lookbehind assertion", to search for a position in the text at which the prefix "{\i exp}" is not present:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 29}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?<![a-z ])\\w\{7\}}{\cf1  {\i\f5 Strings of 7 alphanumerics not preceded by a letter or space}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Here is one more example using lookaround:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20{\f5\cf1{\b 30}}}}{\f5\cf1{\fs20{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 (?<=<(\\w+)>).*(?=<\\/\\1>)}{\cf1  {\i\f5 Text between HTML tags}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 This searches for an HTML tag using lookbehind and the corresponding closing tag using lookahead, thus capturing the intervening text but excluding both tags.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f9\fs20\lang1033\i0\b{\b\fs20\f9\cf3 Comments please}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 Another use of parentheses is to include comments using the "(?#comment)" syntax. A better method is to set the "Ignore Pattern Whitespace" option, which allows whitespace to be inserted in the expression and then ignored when the expression is used. With 
this option set, anything following a number sign "#" at the end of each line of text is ignored. For example, we can format the preceding example like this:}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20\f5\cf1{\b 31}}}{\fs20\f5\cf1{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . {\i Text between HTML tags, with comments}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\fs20\f7\cf4 (?<=\~\~\~ # Search for a prefix, but exclude it\line \~ <(\\w+)> # Match a tag of alphanumerics within angle brackets\line )\~\~\~\~\~\~ # End the prefix}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\fs20\f7\cf4 .*\~\~\~\~\~ # Match any text}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\fs20\f7\cf4 (?=\~\~\~\~ # Search for a suffix, but exclude it\line \~ <\\/\\1>\~ # Match the previously captured tag preceded by "/"\line )\~\~\~\~\~\~ # End the suffix}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs24\lang1033\i0\b{\b\f5\cf3 Greedy and Lazy}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 When a regular expression has a quantifier that can accept a range of repetitions (like "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 .*}{\f5\cf1 "), the normal behavior is to match as many characters as possible. Consider the following regular expression:}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 32. }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 a.*b}{\cf1  {\i\f5 The longest string starting with a and ending with b}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 If this is used to search the string "aabab", it will match the entire string "aabab". This is called "greedy" matching. Sometimes, we prefer "lazy" matching in which a match using the minimum number of repetitions is found. All the quantifiers in Table 2 
can be turned into "lazy" quantifiers by adding a question mark "}}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 ?}{\f5\cf1 ". Thus "}{\b\f7\cf4 *?}{\f5\cf1 " means "match any number of repetitions, but use the smallest number of repetitions that still leads to a successful match". Now let's try the lazy version of example (32):}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20{\f5\cf1 33. }}}{\fs20{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\b\f7\cf4 a.*?b}{\cf1  {\i\f5 The shortest string starting with a and ending with b}}}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 If we apply this to the same string "aabab" it will first match "aab" and then "ab".}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1418\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b *? }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat any number of times, but as few as possible }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1418\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\b\loch\f6\fs20\lang1033\b{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\f7\cf4 +?}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat one or more times, but as few as possible }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1418\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\b\loch\f6\fs20\lang1033\b{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\f7\cf4 ??}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b  }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat zero or one time, but as few as possible }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1418\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \{}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 n}{\b\f7\cf4 ,}{\i\f5\cf1 m}{\b\f7\cf4 \}? }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat at least {\i n}, but no more than {\i m} times, but as few as possible }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx1418\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \{}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 n}{\b{\f7\cf4 ,\}?}}{\b  }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Repeat at least {\i n} times, but as few as possible }
\cell\row\pard \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20\f5\cf1{\b Table 5.}}}{\fs20\f5\cf1{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0  Lazy quantifiers}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs24\lang1033\i0\b{\b\f5\cf3 What did we leave out?}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0{\fs20\f5 I've described a rich set of elements with which to begin building regular expressions; but I left out a few things that are summarized in the following table. Many of these are illustrated with additional examples in the project file. The example number i
s shown in the left-hand column of this table.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx625\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\cellx3263\clbrdrt\brdrs\brdrw20\brdrcf1\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\b\loch\f5\fs20\lang1033\b {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b # }
\cell\pard\plain \intbl\ltrpar\s9\cf0\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\b\loch\f5\fs20\lang1033\b {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b Syntax }
\cell\pard\plain \intbl\ltrpar\s9\cf0\qc{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\b\loch\f5\fs20\lang1033\b {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b Description }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283 {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\a }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Bell character }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283 {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\b }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Normally a word boundary, but within a character class it means backspace }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283 {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\t }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Tab }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 34 }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\r }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Carriage return }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283 {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\v }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Vertical tab }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283 {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\f }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Form feed }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 35 }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\n }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 New line }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283 {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\e }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Escape }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 36 }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \\}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 nnn} }
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Character whose ASCII octal code is {\i nnn} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 37 }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \\x}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 nn} }
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Character whose hexadecimal code is {\i nn} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 38 }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \\u}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 nnnn} }
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Character whose Unicode is {\i nnnn} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 39 }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \\c}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 N} }
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Control {\i N} character, for example carriage return (Ctrl-M) is \\cM }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 40 }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\A }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Beginning of a string (like ^ but does not depend on the multiline option) }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 41 }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\Z }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 End of string or before \\n at end of string (ignores multiline) }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283 {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\z }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 End of string (ignores multiline) }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 42 }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b \\G }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Beginning of the current search }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 43 }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 \\p\{}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 name}{\b\f7\cf4 \} }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Any character from the Unicode class named {\i name}, for example \\p\{IsGreek\} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?>}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Greedy subexpression, also known as a non-backtracking subexpression. This is matched only once and then does not participate in backtracking. }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 44 }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?<}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 x}{\b\f7\cf4 >-<}{\i\f5\cf1 y}{\b\f7\cf4 >}{\i\f5\cf1 exp}{\b\f7\cf4 ) or (?-<}{\i\f5\cf1 y}{\b\f7\cf4 >}{\i\f5\cf1 exp}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Balancing group. This is complicated but powerful. It allows named capture groups to be manipulated on a push down/pop up stack and can be used, for example, to search for matching parentheses, which is otherwise not possible with regular expressions. See 
the example in the project file. }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 45 }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?im-nsx:}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Change the regular expression options for the subexpression {\i exp} }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 46 }
\cell\pard\plain \intbl\ltrpar\s9\cf4{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f7\fs20\lang1033\b\loch\f7\fs20\lang1033\b {\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b (?im-nsx) }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Change the regular expression options for the rest of the enclosing group }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?(}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b\f7\cf4 )}{\i\f5\cf1 yes}{\b\f7\cf4 |}{\i\f5\cf1 no}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 The subexpression {\i exp} is treated as a zero-width positive lookahead. If it matches at this point, the subexpression {\i yes} becomes the next match, otherwise {\i no} is used. }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?(}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 exp}{\b\f7\cf4 )}{\i\f5\cf1 yes}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Same as above but with an empty {\i no} expression }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 {\rtlch \ltrch\loch \~ }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?(}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 name}{\b\f7\cf4 )}{\i\f5\cf1 yes}{\b\f7\cf4 |}{\i\f5\cf1 no}{\b\f7\cf4 ) }}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 This is the same syntax as the preceding case. If name is a valid group name, the {\i yes} expression is matched if the named group had a successful match, otherwise the {\i no} expression is matched. }
\cell\row\pard \trowd\trql\trpaddft3\trpaddt115\trpaddfl3\trpaddl115\trpaddfb3\trpaddb115\trpaddfr3\trpaddr115\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx625\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clvertalc\cellx3263\clbrdrl\brdrs\brdrw20\brdrcf1\clbrdrb\brdrs\brdrw20\brdrcf1\clbrdrr\brdrs\brdrw20\brdrcf1\cellx10539
\pard\intbl\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 47 }
\cell\pard\plain \intbl\ltrpar\s9\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs20\lang1033\loch\f6\fs20\lang1033{\rtlch \ltrch\loch\f7\fs20\lang1033\i0\b{\b\f7\cf4 (?(}}{\rtlch \ltrch\loch\f6\fs20\lang1033\i0\b0{\i\f5\cf1 name}{\f7\cf4{\b )}}{\f7\cf4{\i yes) }}}
\cell\pard\plain \intbl\ltrpar\s9\cf1{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs20\lang1033\loch\f5\fs20\lang1033 {\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 Same as above but with an empty {\i no} expression }
\cell\row\pard \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b{\fs20\f5\cf1{\b Table 6}}}{\fs20\f5\cf1{\rtlch \ltrch\loch\f5\fs20\lang1033\i0\b0 . Everything we left out. The left-hand column shows the number of an example in the project file that illustrates this construct.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0\qj{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f5\fs14\lang1033\loch\f5\fs14\lang1033 {\rtlch \ltrch\loch\f5\fs14\lang1033\i0\b0 My resignation will take effect two day from now, on }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\sa283\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033{\rtlch \ltrch\loch\f5\fs14\lang1033\i0\b0{\fs14\f5\cf1 April 6, 2007.}}{\rtlch \ltrch\loch\f6\fs24\lang1033\i0\b0  }
\par \pard\plain \ltrpar\s3\cf0{\*\hyphen2\hyphlead2\hyphtrail2\hyphmax0}\li0\ri0\lin0\rin0\fi0\rtlch\af6\afs24\lang255\ltrch\dbch\af6\langfe255\hich\f6\fs24\lang1033\loch\f6\fs24\lang1033 
\par }